#include "StdAfx.h"
#include <utility/api_tools.h>
#include "update_res_mgr.h"
#include "dll_object.h"
#include "res_string_def.h"
#include "update.h"

update_res_map update_res_mgr::res_string_;

const char*
update_res_mgr::get_res_string( DWORD id )
{
	update_res_map::iterator iter;
	iter = update_res_mgr::res_string_.find(id);
	if( iter != update_res_mgr::res_string_.end() )
	{
		return iter->second.c_str();
	}
	else
	{
		return "";
	}
}

update_res_mgr::update_res_mgr(void)
{
}

update_res_mgr::~update_res_mgr(void)
{
	res_string_.clear();
}

void 
update_res_mgr::insert_res_string(const char* id, int string_def, 
								   aot::tt::res_parser_string_helper *res_ctrl)
{
	std::string val = res_ctrl->get_string(id, "");
	res_string_.insert(update_res_map::value_type(string_def, val));
}

BOOL 
update_res_mgr::init_res_string(const char* language/* = 2052*/)
{
	std::string fn = aot::tt::utility::get_module_path(theApp.m_hInstance) +
		"language\\2052\\res_string.xml";

	if ( !g_dll_obj->im_->query_interface(res_str_parser, "ires_parser") )
	{
		return FALSE;
	}

	if ( !res_str_parser.open( fn.c_str()) )
	{
		return FALSE;
	}
	
	insert_res_string("IDS_UPDATE_TATA_IS_INSTALL",IDS_UPDATE_TATA_IS_INSTALL,&res_str_parser);
	insert_res_string("IDS_UPDATE_TATA_NEW_RENOVATE",IDS_UPDATE_TATA_NEW_RENOVATE,&res_str_parser);
	insert_res_string("IDS_UPDATE_TATA_WEBSER_ERROR_1",IDS_UPDATE_TATA_WEBSER_ERROR_1,&res_str_parser);
	insert_res_string("IDS_UPDATE_TATA_WEBSER_ERROR_2",IDS_UPDATE_TATA_WEBSER_ERROR_2,&res_str_parser);
	
	insert_res_string("IDS_UPDATE_OK",IDS_UPDATE_OK,&res_str_parser);
	insert_res_string("IDS_UPDATE_CANCEL",IDS_UPDATE_CANCEL,&res_str_parser);
	
	insert_res_string("IDS_UPDATE_OLD_VER_PROMPT",IDS_UPDATE_OLD_VER_PROMPT,&res_str_parser);
	insert_res_string("IDS_UPDATE_NEW_VER_PROMPT",IDS_UPDATE_NEW_VER_PROMPT,&res_str_parser);
	insert_res_string("IDS_UPDATE_NEW_VER_EXPLAIN",IDS_UPDATE_NEW_VER_EXPLAIN,&res_str_parser);

	insert_res_string("IDS_UPDATE_INSTANCE_IS_RUN",IDS_UPDATE_INSTANCE_IS_RUN,&res_str_parser);
	return TRUE;
}

